home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / modelers / geomview / source.lha / Geomview / doc / geomview-1 < prev    next >
Text File  |  1993-12-06  |  51KB  |  1,155 lines

  1. Info file: geomview,    -*-Text-*-
  2. produced by texinfo-format-buffer
  3. from file: geomview.tex
  4.  
  5.  
  6. 
  7. File: geomview  Node: Top, Up: (DIR), Next: What
  8.  
  9. * Menu:
  10.  
  11. * What::        What is Geomview?.
  12. * Authors::        The Authors of Geomview.
  13. * Register::        Let Us Hear From You.
  14. * Overview::        Overview of Geomview.
  15. * Tutorial::        Introductory Tutorial.
  16. * Interaction::        Interacting with Geomview.
  17. * OOGL File Formats::    Formats for Geometry Input.
  18. * Customization::    Modifying the behavior of Geomview.
  19. * Modules::        Programs that use Geomview for graphics display.
  20. * GCL::            gcl: the Geomview Command Language.
  21. * Mathematica::        Mathematica Graphics in Geomview or RenderMan.
  22. * Installation::    Installing Geomview on your computer.
  23.  
  24. * Function Index::    A node for each gcl function.
  25.  
  26. 
  27. File: geomview  Node: What, Prev: Top, Up: Top, Next: Authors
  28.  
  29. What Is Geomview?
  30. *****************
  31.  
  32. Geomview, pronounced GE-om-view, is an interactive program for viewing
  33. and manipulating geometric objects, written by staff members of the
  34. Geometry Center.  It can be used as a standalone viewer for static
  35. objects or as a display engine for other programs which produce
  36. dynamically changing geometry.  It runs on Silicon Graphics (SGI) IRIS
  37. workstatons and NeXT workstations.  This manual describes SGI Geomview
  38. version 1.4.1.  Although we do not yet have a manual for the NeXT
  39. version, much this of manual applies to that version as well as to the
  40. SGI version.
  41.  
  42. Geomview and this manual are available for free via anonymous ftp on the
  43. Internet from host `geom.umn.edu' (IP address 128.101.25.35).
  44. Permission is granted to make copies of this manual.
  45.  
  46. If you have questions or comments about Geomview or this manual, you can
  47. email them to `software@geom.umn.edu'.  We are always glad to hear from
  48. users.  There is also a `geomview-users' mailing list for announcements
  49. regarding Geomview and for Geomview users to communicate with each
  50. other.  If you use Geomview please send an email note to
  51. `geomview-users-request@geom.umn.edu' requesting to be added to this
  52. mailing list.
  53.  
  54. 
  55. File: geomview  Node: Authors, Prev: What, Up: Top, Next: Register
  56.  
  57. Authors
  58. =======
  59.  
  60. Tamara Munzner, Stuart Levy, and Mark Phillips are the original authors
  61. of Geomview. Celeste Fowler, Charlie Gunn, and Nathaniel Thurston also
  62. made significant contributions.  Daniel Krech and Scott Wisdom did the
  63. NeXTStep and RenderMan port, and Daeron Meyer is currently working on a
  64. port to X windows.
  65.  
  66. Mark Phillips wrote this manual, with substantial help from Stuart Levy
  67. and Tamara Munzner.  Countless Geomview users have also been of great
  68. help by reading it and pointing out mistakes.
  69.  
  70. 
  71. File: geomview  Node: Register, Prev: Authors, Up: Top, Next: Overview
  72.  
  73. Let Us Hear From You
  74. ********************
  75. We are very interested in hearing about how you are using Geomview.
  76. Think of Geometry Center software as a new kind of shareware: you share
  77. your science and successes with us, and we share our software and
  78. support with you.  The Geometry Center is funded by the National Science
  79. Foundation, and it is important that we be able to report to NSF the
  80. ways in which our software is being used.
  81.  
  82. If you use Geomview, please send us a letter telling us what you are
  83. doing with it. We need to know:
  84.  
  85.   1. What you are working on - an abstract of your work would be fine.
  86.  
  87.   2. How Geomview has helped you, for example, by increasing your
  88.      productivity or allowing you to do things you could not do before.  In
  89.      particular, if you feel that Geomview has had a direct bearing on your
  90.      work, please tell us about this.
  91.  
  92. Please send the letter either via email to `register@geom.umn.edu',
  93. or via regular mail to the address below.
  94.  
  95. Moreover, if you use Geomview or other Geometry Center software in your
  96. work, we encourage you to cite its use in your publications.
  97.  
  98. Thank you!
  99.  
  100.  
  101.  
  102.      Software Development Group
  103.      Geometry Center
  104.      1300 South 2nd St, Suite 500
  105.      Minneapolis, MN  55454
  106.      USA
  107.  
  108.  
  109. 
  110. File: geomview  Node: Overview, Prev: Register, Up: Top, Next: Tutorial
  111.  
  112. Overview
  113. ********
  114.  
  115. Geomview's main purpose is to display objects whose geometry is given,
  116. allowing interactive control over details such as point of view, speed
  117. of movement, appearance of surfaces and lines, and so on.  Geomview can
  118. handle any number of objects and allows both separate and collective
  119. control over them.  
  120.  
  121. The simplest way to use Geomview is as a standalone viewer to see
  122. and manipulate objects.  It can display objects described in a variety
  123. of file formats.  It comes with a wide variety of example objects, and
  124. you can create your own objects.
  125.  
  126. You can also use Geomview to handle the display of data coming from
  127. another program that is running simultaneously.  As the other program
  128. changes the data, the Geomview image reflects the changes.  Programs
  129. that generate objects and use Geomview to display them are called
  130. *external modules*.  External modules can control almost all
  131. aspects of Geomview.  The idea here is that many aspects of the display
  132. and interaction parts of geometry software are independent of the
  133. geometric content and can be collected together in a single piece of
  134. software that can be used in a wide variety of situations.  The author
  135. of the external module can then concentrate on implementing the desired
  136. algorithms and leave the display aspects to Geomview.  Geomview comes
  137. with a collection of sample external modules, and this manual describes
  138. how to write your own.
  139.  
  140. Geomview represents the current state of an ongoing effort at the
  141. Geometry Center to provide interactive geometry software that is
  142. particularly appropriate for mathematics research and education.  In
  143. particular, Geomview can display things in hyperbolic and spherical
  144. space as well as Euclidean space.
  145.  
  146. Geomview allows multiple independently controllable objects and
  147. cameras.  It provides interactive control for motion, appearances
  148. (including lighting, shading, and materials), picking on an object,
  149. edge or vertex level, snapshots in SGI image file or Renderman RIB
  150. format, and adding or deleting objects is provided through direct
  151. mouse manipulation, control panels, and keyboard shortcuts.
  152.  
  153. Geomview supports the following simple data types: polyhedra with
  154. shared vertices (.off), quadrilaterals, rectangular meshes, vectors,
  155. and Bezier surface patches of arbitrary degree including rational
  156. patches. Object hierarchies can be constructed with lists of objects
  157. and instances of object(s) transformed by one or many 4x4 matrices.
  158. Arbitrary portions of changing hierarchies may be transmitted by
  159. creating named references.
  160.  
  161. Geomview can display Mathematica graphics output.
  162.  
  163. 
  164. File: geomview  Node: Tutorial, Prev: Overview, Up: Top, Next: Interaction
  165.  
  166. Tutorial
  167. ********
  168.  
  169. This chapter leads you through some of the basics of using Geomview.
  170. Work through this chapter in front of a workstation where you can try
  171. out the examples given here to get a feel for what you can do with
  172. Geomview.
  173.  
  174. To start Geomview, login to the computer and get a shell window.  A
  175. shell window is a window in which you can type unix commands; the prompt
  176. in the window usually ends with a '%'.  In the shell window (the mouse
  177. cursor must be in the window) type the following (`RET' here
  178. means hit the "Enter" key):
  179.  
  180.      geomview tetra dodec RET
  181.  
  182. This command starts up Geomview and loads two example objects, a
  183. tetrahedron and a dodecahedron.  After a few seconds three windows
  184. should appear as shown in Figure 1.
  185. (The figures in this document appear only in the hardcopy version,
  186. not the Info version.)
  187.  
  188. The panel on the left is Geomview's main control panel; it's called
  189. the *Main* panel.  The skinny panel in the middle is the
  190. *Tools* panel and is for selecting different kinds of motions.
  191. The window on the right is the camera window and in it you see a
  192. large tetrahedron and a dodecahedron which is partially obscured
  193. by the tetrahedron.
  194.  
  195. Geomview has lots of panels but by default it displays only these three.
  196. We'll describe some aspects of these and a couple of the others in this
  197. tutorial.  You can read more about these and other panels in the later
  198. chapters of this manual.
  199.  
  200. Put the mouse cursor in the camera window and press down and hold the
  201. left mouse button.  Now, while holding down the button, slowly move the
  202. mouse around.  You should see the picture rotate in the direction you
  203. move the mouse.    If you lift up on the mouse button while moving the
  204. mouse, the picture continues rotating.  To stop it, hold the mouse very
  205. still and click down and up on the left mouse button.
  206.  
  207. Geomview uses the *glass sphere* model for mouse-based motion.  This
  208. means you are supposed to think of the object as being inside an
  209. invisible sphere and the mouse cursor is a gripper outside the sphere.
  210. When you hold down the left mouse button, the gripper grabs the
  211. sphere; when you let go of the button, the gripper releases the
  212. sphere.  Moving the mouse while holding the button down causes the
  213. sphere (and hence the object) to move in the same direction as the
  214. mouse.
  215.  
  216. In addition to the two solids you should also see two wireframe
  217. boxes in the camera window.  These are the "bounding boxes" of the two
  218. objects.  By default Geomview puts a bounding box around each object
  219. that it displays so that you have an idea of how large it is.
  220.  
  221. Notice that as you move the mouse around the tetrahedron and
  222. dodecahedron move as a unit.  That is because by default what you are
  223. actually moving is the "World".  To move an individual object instead of
  224. the whole world, move the mouse cursor to the *TARGET* browser in
  225. the *Main* panel.  Click (any button) on the word *tetra*.
  226. This makes the tetrahedron be the "target object".  Now move the cursor
  227. back to the camera window and you can rotate just the tetrahedron.
  228.  
  229. The motion that you have been applying up to now has been rotation,
  230. because that is the motion mode that is selected in the *Tools*
  231. panel.  To translate instead, click on the *Translate* button.
  232. Now when you move the mouse in the camera window while holding down the
  233. left button, the tetrahedron (which should still be the target object
  234. from before) will translate in the direction you move the mouse.  Notice
  235. that you can translate it beyond the edge of the window as long as you
  236. keep holding the left mouse button down.  If you lift up on the mouse
  237. button while moving the mouse, the tetrahedron will keep going.  It
  238. moves rather rapidly so it is very easy to lose track of where it is.
  239.  
  240. If you accidentally lose the tetrahedron by translating it too far out
  241. of the view of the window, you can get it back by clicking on the
  242. *Center* button in the *Tools* panel.  This causes it to
  243. come back to its initial position.
  244.  
  245. Click on the *Center* button to bring the tetrahedron home, and
  246. then translate it off to one side so that you can completely see the
  247. dodecahedron.
  248.  
  249. Your world now has two objects in it that are beside each other.  You
  250. should see the dodecahedron in the middle of the window and maybe part
  251. of the tetrahedron off to one side.  Go back to the *TARGET*
  252. browser in the *Main* panel and click on "World" to select the
  253. whole world again.  Now click on the *Look At* button in the
  254. *Tools* panel.  You should see something like Figure 2 --- the
  255. dodecahedron and the tetrahedron in the middle of the window next
  256. to each other.  The *Look At* button positions the camera in
  257. such a way that the target object is centered in the window.
  258.  
  259. Now put the cursor over the middle of the dodecahedron and double-click
  260. the right mouse button.  This means click it down-and-up two times in
  261. rapid succession.  Notice that the dodecahedron becomes the target
  262. object; you can see this in the *TARGET* browser in the
  263. *Main* panel.  Double-clicking the right mouse button on an object
  264. is another way to make it the target object.
  265.  
  266. Go to the *PANELS* browser in the *Main* panel and click on
  267. the word *Appearance*.  This brings up the *Appearance*
  268. panel.  When it appears, if it partially obscures another Geomview window
  269. you can move it off to one side by dragging its frame with the middle
  270. mouse button down.
  271.  
  272. The *Appearance* panel lets you control various things about the
  273. way Geomview draws objects.  In the upper right corner, under the
  274. *Done* button are buttons labeled *[af] Faces* and
  275. *[ae] Edges*.  Click on the *[ae] Edges* one, and notice
  276. that Geomview is now drawing the edges of the dodecahedron.  Click on it
  277. again and the edges go away.  Click several times and watch the edges
  278. come and go.  When you've had enough of this, leave the edges on
  279. and click the *[af] Faces* button.  This toggles the faces
  280. on and off.  Click the button again to turn them back on.
  281.  
  282. Now click on the *[Cf] Faces* button under the word
  283. *COLOR*.   A color chooser panel like the one in Figure
  284. 4 should appear.
  285. Put the cursor in the color hexagon in this panel and hold down the left
  286. mouse button.  Slowly move the mouse around.  This drags the little
  287. black point around to choose a new color for the dodecahedron.  The
  288. previous colors were specified in the file `dodec' that you loaded
  289. when we started Geomview.  The color that you specify with the color
  290. panel overrides the old colors.  You can adjust the intensity of the
  291. color with the *Intensity* slider.  When you find a color that
  292. you like, click the *OK* button.
  293.  
  294.  
  295. Now put the cursor somewhere over the gray background and double-click
  296. the right mouse button; this picks "World" as the target object.
  297. Click the *Look At* button to look at the world again.
  298.  
  299. Notice that in the *Appearance* panel the settings of the buttons
  300. have changed from the way you left them with the dodecahedron.  That's
  301. because the *Appearance* panel always displays the settings for
  302. the target object, which is now the world, which still has its
  303. default settings.
  304.  
  305. Click on the *[ab] BBox* button under the word *Draw*.
  306. The bounding boxes go away.  Now put the cursor back in the camera
  307. window.  At the keyboard, type the keys `a b'.  Notice that the
  308. bounding boxes come back.  `a b' is the keyboard shortcut for
  309. the bounding box toggle button; the string "[ab]" appears on the
  310. button to indicate this.  Most of Geomview's buttons have keyboard
  311. shortcuts that you can use instead if you want.  This is useful once
  312. you are familiar with Geomview and don't want to have to move around
  313. among lots of panels.
  314.  
  315. Now select the tetrahedron, either by double-clicking the right mouse
  316. button on it, or by selecting "tetra" in the *TARGET* browser.
  317. Then click on the *Delete* button in the *Main* panel.  The
  318. tetrahedron should disappear.  This is how you get rid of an object.
  319.  
  320. You can also load objects from within Geomview.  Click on the *Load*
  321. button in the main panel.  The *Files* panel will appear.
  322. Near the top of this panel is a browser with three lines in it; the
  323. second line is a directory with lots of Geomview example files
  324. in it.  Click on that second line.  Your *Files* panel should
  325. then look something like Figure 5.  Scroll down in the list of files
  326. until you see `tref.off'.  Click on that line, and then click
  327. on the *Add* button.  A large trefoil-shaped tube will appear
  328. in your window.  Click the *Done* button in the *Files*
  329. panel to dismiss the panel.
  330.  
  331.  
  332. Now click on the *Reset* button in the *Tools* panel.  This
  333. causes everything to return to its home position.  You should see
  334. something like Figure 6 at this point: a dodecahedron and a
  335. trefoil knot.
  336.  
  337. Play around with the trefoil knot and the dodecahedron.  Experiment with
  338. some of the other buttons in the *Tools* panel.  Try coloring the
  339. trefoil knot with the *Appearance* panel.
  340.  
  341. For a tutorial on how to create your own objects to load into Geomview,
  342. see file `doc/oogltour' distributed with Geomview
  343. (`/u/gcg/ngrap/doc/oogltour' on the Geometry Center system).  The
  344. things in that file will be incorporated into a future version of this
  345. manual.
  346.  
  347.  
  348. 
  349. File: geomview  Node: Interaction, Prev: Tutorial, Up: Top, Next: Starting Geomview
  350.  
  351. Interaction
  352. ***********
  353.  
  354. This chapter describes how you interact with Geomview through the
  355. mouse and keyboard.
  356.  
  357. * Menu:
  358.  
  359. * Starting Geomview::             Starting Geomview.
  360. * Command Line Options::          Command Line Options.
  361. * Basic Interaction::             Basic Interaction: The Main Panel.
  362. * Loading::                       Loading Objects Into Geomview.
  363. * Mouse Motions::                 Using the Mouse to Manipulate Objects.
  364. * Appearance::                    Changing the Way Things Look.
  365. * Cameras::                       Cameras.
  366. * Saving::                        Saving your work.
  367. * Command Obscure::               The Commands and Obscure Panels.
  368. * Keyboard Shortcuts::            Keyboard Shortcuts.
  369.  
  370. 
  371. File: geomview  Node: Starting Geomview, Prev: Interaction, Up: Interaction, Next: Command Line Options
  372.  
  373. Starting Geomview
  374. =================
  375.  
  376. The usual way to start Geomview is to type `geomview RET' in a shell
  377. window (RET means hit the "Enter" key).  It may take Geomview a few
  378. seconds to start up; one or more windows will appear and you can begin
  379. interacting with Geomview immediately.
  380.  
  381. It is also possible to specify actions for Geomview to perform at
  382. startup time by giving arguments in the shell command line.
  383. *Note Command Line Options::.
  384.  
  385.  
  386. 
  387. File: geomview  Node: Command Line Options, Prev: Starting Geomview, Up: Interaction, Next: Basic Interaction
  388.  
  389. Command Line Options
  390. ====================
  391.  
  392. Here are the command line options that Geomview allows:
  393.  
  394. `-b R G B'
  395.      Set the window background color to the given R G B
  396.      values.
  397.  
  398. `-c FILE'
  399.      Interpret the gcl commands in FILE, which may be the special
  400.      symbol `-' for standard input.  For a description of gcl,
  401.      *Note GCL::.
  402.  
  403. `-c COMMAND'
  404.      Commands may also be supplied literally, as in
  405.           -c "(ui-panel main off)"
  406.      Since COMMAND includes parentheses, which have special meaning to
  407.      the shell, COMMAND must be quoted.
  408.  
  409. `-wins NWINS'
  410.      Causes Geomview to initially display NWINS camera windows.
  411.  
  412. `-wpos WIDTH,HEIGHT[@XMIN,YMIN]'
  413.      Specifies the initial location and size of the first camera window.  The
  414.      values for WIDTH, HEIGHT, XMIN, and YMIN are in
  415.      screen (pixel) coordinates.
  416.  
  417. `-wpos -'
  418.      You are prompted for placement of the first camera window.
  419.  
  420. `-M OBJECTNAME'
  421.      Display (possibly dynamically changing) geometry sent from the
  422.      `geomstuff' program.  This actually listens to the
  423.      named pipe `/tmp/geomview/objectname'; you can achieve the same
  424.      effect with the shell commands:
  425.           mkdir /tmp/geomview
  426.           mknod /tmp/geomview/objectname p
  427.      (assuming the directory and named pipe don't already exist), then
  428.      executing the gcl command:
  429.      `(geometry objectname  < /tmp/geomview/objectname)'
  430.  
  431. `-Mc PIPENAME'
  432.      Like `-M' above, but expects gcl commands, rather than OOGL
  433.      geometry data, on the connection.
  434.  
  435. `-nopanels'
  436.      Start up displaying no panels, only graphics windows.  Panels may be
  437.      invoked later as usual with the `Px' keyboard shortcuts or with
  438.      the `ui-panel' command.
  439.  
  440. `-e MODULE'
  441.      Start an external module; MODULE is the name associated with the
  442.      module, appearing in the main panel's Applications browser, as defined
  443.      by the `emodule-define' command.
  444.  
  445. `-start MODULE ARGS ...'
  446.      Like -e but allows you to pass arguments to the external module.  "--"
  447.      signals the end of the argument list; the "--" may be omitted if it
  448.      would be the last argument on the Geomview command line.
  449.  
  450. `-run SHELL-COMMAND ARGS ...'
  451.      Like -start but takes the pathname of executable of the external module
  452.      instead of the module's name.
  453.  
  454.  
  455. 
  456. File: geomview  Node: Basic Interaction, Prev: Command Line Options, Up: Interaction, Next: Loading
  457.  
  458. Basic Interaction: The Main Panel
  459. =================================
  460.  
  461. Normally when you invoke Geomview, three windows appear: the
  462. *Main* panel, the *Tools* panel, and one camera window.
  463. Geomview has many other windows but most things can be done with these
  464. three and so by default the others do not appear.  This section of the
  465. manual introduces some basic concepts that are used throughout the rest
  466. of the manual and describes the *Main* panel.
  467.  
  468.  
  469. Geomview can display an arbitrary number of objects simultaneously.  The
  470. *TARGET* browser in the *Main* panel displays a list of all
  471. the objects that Geomview currently knows about.  This browser has a
  472. line for each object that you have loaded, plus some lines for other
  473. objects.  One of the other objects is called `World' and corresponds to
  474. the all the currently loaded objects, treated as if they were one
  475. object.  Most of the operations that you can do to one object, such as
  476. applying a motion or changing a color, can also be done to the "World"
  477. object.
  478.  
  479. The *TARGET* browser also has an entry for each camera.  By
  480. default there is only one camera; it is possible to add more of them via
  481. the *Camera* panel.  Geomview treats cameras in much the same way
  482. as it does geometric objects.  For example, you can move cameras around
  483. and add them and delete them just as with geometric objects.  Cameras do
  484. not usually show up in the display as an object that you see.  Each
  485. camera has a separate camera window which displays the view as seen by
  486. that camera.  (It is possible for each camera to display a geometric
  487. representation of other cameras; *Note Cameras::.)
  488.  
  489. Because Geomview treats cameras and geometric objects very similarly,
  490. the term "object" in this documentation is used to refer to either
  491. one.  When we need to distinguish between the two kinds of objects, we
  492. use the term "geom" to denote a geometric object and the word
  493. "camera" to denote a camera.
  494.  
  495. The object which is selected (highlighted) in the *TARGET*
  496. browser is called the "target" object.  This is the object that
  497. receives any actions that you do with the mouse or keyboard.  You can
  498. change the target object by selecting a different line in the
  499. *TARGET* browser.  Another way to change the target object is
  500. to put the mouse cursor directly over a geom in a camera window
  501. and rapidly double-click the right mouse button.  This process is called
  502. "picking"; the picked object becomes the new target.
  503.  
  504. Geomview objects are all known by two names, both of which are shown in
  505. the *TARGET* browser.  The first name given there, which appears
  506. in square brackets ([ ]), is a short name assigned by Geomview when you
  507. load the object.  It consists of the letter `g' for geoms and `c' for
  508. cameras, followed by a number.  The second name is a longer more
  509. descriptive name; by default this is the name of the file that the
  510. object was loaded from.  The two names are equivalent as far as Geomview
  511. is concerned; at any point where you need to specify a name you can give
  512. either one.
  513.  
  514. To manipulate an object, make sure you that the object you want to move is the
  515. target object, and put the mouse cursor in a camera window.  Motions are
  516. applied by holding down either the left or middle mouse button and
  517. moving the mouse.  There are several different motion "modes", each for
  518. applying a different kind of motion.  The *MOTION MODE* browser
  519. in the *Main* panel indicates the current motion mode.  The
  520. default is "Rotate".  You can change the current motion mode by
  521. selecting a new one in the *MOTION MODE* browser, or by using the
  522. *Tools* panel.  For more information about motion modes,
  523. *Note Mouse Motions::.
  524.  
  525. The *Load* button on the *Main* panel brings up the
  526. *Files* panel for loading a file.  The file can contain either a
  527. geom, a camera, or gcl commands.  For details, *Note Loading::.
  528.  
  529. The *Delete* button causes the target
  530. object to be deleted.  Geomview selects another object to be the new
  531. target.  You can delete cameras as well as geoms in this way.  If you
  532. hit the *Delete* button while the target object is "World",
  533. Geomview deletes all geoms.
  534.  
  535. The *Panels* browser on the *Main* panel lists all the
  536. Geomview panels.  Click on a panel's entry to bring that panel up.
  537.  
  538. The *Modules* browser lists Geomview external modules.  An
  539. external module is a separate program that interacts with Geomview to
  540. extend its functionality.  For information on external modules,
  541. *Note Modules::.
  542.  
  543. The three buttons at the bottom of the *Main* panel, labeled
  544. *Euclidean*, *Hyperbolic*, and *Spherical*, allow
  545. you to change the geometry of the space that Geomview displays.  By
  546. default *Euclidean* is selected.  For details about using
  547. *Hyperbolic* and *Spherical* spaces, *Note Non-Euclidean Geometry::.
  548.  
  549. Most actions that you can do through Geomview's panels have equivalent
  550. keyboard shortcuts so that you can do the same action by typing a
  551. sequence of keys on the keyboard.  This is useful for advanced users who
  552. are familiar with Geomview's capabilities and want to work quickly
  553. without having to have lots of panels cluttering up the screen.
  554. Keyboard shortcuts are usually indicated in square brackets ([ ]) near
  555. the corresponding item in a panel.  For example, the keyboard shortcut
  556. for *Rotate* mode is 'r'; this is indicated by "[r]" appearing
  557. before the word "Rotate" in the *MOTION MODE* browser.  To
  558. use this keyboard shortcut, just hit the `r' key while the mouse
  559. cursor is in any Geomview window.  Do not hit the `RET' key
  560. afterwards.
  561.  
  562. Some keyboard shortcuts consist of more than one key.  In these cases
  563. just type the keys one after the other, with no `RET'
  564. afterwards.  Keyboard shortcuts are case sensitive.
  565.  
  566. The *keyboard* field in the upper left corner of the *Main*
  567. panel echos the current state of keyboard shortcuts.
  568.  
  569. The button labeled *?* near the top right corner of the
  570. *Main* panel causes Geomview to print out a list of all keyboard
  571. shortcuts to standard output.
  572.  
  573. The *Quit* button on the main panel terminates Geomview.
  574.  
  575.  
  576. 
  577. File: geomview  Node: Loading, Prev: Basic Interaction, Up: Interaction, Next: Mouse Motions
  578.  
  579. Loading Objects Into Geomview
  580. =============================
  581.  
  582. There are several ways to load an object into Geomview.
  583.  
  584. the *Files* panel
  585.      If you click the *Load* button in Geomview's *Main* panel,
  586.      the *Files* panel will appear. 
  587.  
  588.      This panel lets you select a file from a variety of directories.
  589.      The short browser at the top of the panel shows the selected
  590.      directory, and the longer browser beneath it shows the files in
  591.      that directory.  To select a file, click on it.  After a file is
  592.      selected, you can load it into Geomview by clicking either the
  593.      *Add* or *Replace* button.  The *Add* button causes Geomview to
  594.      load the file as a new object; a new entry will appear in the
  595.      *Objects* browser in the *Main* panel, and all objects currently
  596.      loaded will remain unchanged.  The *Replace* button causes Geomview
  597.      to replace the current object with the object in the selected file.
  598.      If the current object is the *World*, Geomview deletes all objects
  599.      and loads the one in the file as a new object.  If the current
  600.      object is a camera, the *Replace* button has no effect.
  601.  
  602.      If the file that you select contains gcl commands rather than an
  603.      OOGL object, the *Add* and *Replace* buttons both cause
  604.      Geomview to interpret the commands in the file.  For more information
  605.      about this, *Note GCL::.
  606.  
  607.      When the *Files* panel first appears, the directory selected in the
  608.      directory browser is the current directory --- the one from which you
  609.      invoked Geomview.  The file browser shows *all* the files in this
  610.      directory, including ones that are not Geomview files.  If you try to
  611.      load a file that doesn't contain either an OOGL object or Geomview
  612.      commands, Geomview will print out an error message.
  613.  
  614.      The directory browser also lists a second and third directory in
  615.      addition to the current directory.  The second one, which ends in
  616.      `data/geom', is the Geomview example data directory.  This contains
  617.      a wide variety of sample objects.  It also contains several
  618.      subdirectories.  In particular, the `hyperbolic' and
  619.      `spherical' subdirectories have sample hyperbolic and spherical
  620.      objects, respectively.  Directory entries in the browser look just like
  621.      file entries; to view a subdirectory, click on it.
  622.  
  623.      The third directory shown in the directory browser, which ends in
  624.      `geom', contains several subdirectories with other Geomview files
  625.      in them.  These are used less frequently than the ones in the
  626.      `data/geom' directory.
  627.  
  628.      You can change the list of directories shown the *Files*
  629.      panel's directory browser by using the `set-load-path' command;
  630.      *Note GCL::.
  631.  
  632. the `<' keyboard shortcut:
  633.      If you type `<' in any Geomview window, the *Load* panel will
  634.      appear.  This is a small version of the *Files* panel; it contains
  635.      a text field in which you can enter the name of a file to load.  After
  636.      typing the name of the file to load, type `RET'; Geomview will
  637.      load the file as if you had loaded it with the *Add* button in
  638.      the *Files* panel.  If, after bringing up the small load panel
  639.      with `<', you decide you want to use the larger *Files* panel
  640.      after all, press the *Files Browser* button.
  641.  
  642. geometry loading commands:
  643.      The `load', `geometry', `new-geometry', and `read' gcl commands
  644.      allow you to load an object into Geomview; *Note GCL::.
  645.  
  646.  
  647. 
  648. File: geomview  Node: Mouse Motions, Prev: Loading, Up: Interaction, Next: Point of Interest
  649.  
  650. Using the Mouse to Manipulate Objects
  651. =====================================
  652.  
  653. Geomview lets you manipulate objects with the mouse.  There are six
  654. different mouse motion modes: *Rotate*, *Translate*, *Cam Fly*, *Cam
  655. Zoom*, *Geom Scale*, and *Cam Orbit*.  The tools panel has a button for
  656. each of these modes; to switch modes, click on the corresponding button.
  657. You can also select these through the *Motion Mode* browser on the
  658. *Main* panel.
  659.  
  660. This section describes basic mouse interaction.  There are some more
  661. advanced features available on the *Obscure* panel.  For details,
  662. *Note Command Obscure::.
  663.  
  664.  
  665. Each of the motion modes uses a common paradigm for how the motion is
  666. applied.  In particular, each depends on the current *target*
  667. object and the current *center* object.  These are explained in the
  668. following paragraphs.
  669.  
  670. The current target object is shown in the *Target* field in the
  671. *Tools* panel.  This is the same as the selected object in the
  672. *TARGET OBJECTS* browser in the *Main* panel, and you can
  673. change it by either selecting a new object in the browser, by typing
  674. a new entry in the field, or by picking an object in a camera
  675. window by double-clicking the right mouse button with the cursor over
  676. the object.
  677.  
  678. The current center object is shown in the *Center* field in the
  679. *Tools* panel.  Its default value is the special word "target",
  680. which means that the center object is whatever the target object is.
  681. You can change the center to any object by typing it in the *Center*
  682. field.  The origin of the center object is held fixed in *Rotate* and
  683. *Orbit* modes.  Normally the center object is one of the existing
  684. geoms listed in the *TARGET OBJECTS* browser, and the actual center of
  685. rotations is the origin of that object's coordinate system.
  686. It is possible, however, to select an arbitrary point of interest on
  687. an object as the center. For details, *Note Point of Interest::.
  688.  
  689. You apply a mouse motion by holding down either the left or middle mouse
  690. button with the cursor in a camera window and moving the mouse.  Most of
  691. the modes have *inertia*, which means that if you let go of the
  692. button while moving the mouse, the motion will continue.  It may be
  693. helpful to imagine the mouse cursor as being a gripper; when you hold a
  694. mouse button down, it grips the target object and you can move it.  When
  695. you let go of the mouse button, the gripper releases the object.
  696. Letting go of the mouse button while moving the mouse is like throwing
  697. the object --- the object continues moving independent of the mouse.
  698. Inertia can be turned off; see the button on the *Obscure* panel.
  699.  
  700. Most of the mouse motions have a slow motion version which you get by
  701. holding down the shift key while doing the motion as usual.  This
  702. is useful for finer control.
  703.  
  704. You can pick any point on an object (not just its origin) as the center of
  705. motion by holding down the shift key while clicking the right mouse button;
  706. this chooses a point of interest.
  707.  
  708.  
  709. *Rotate*
  710.      In *Rotate* mode, hold the left mouse button down to rotate the
  711.      target object about the center object.  Rotation proceeds in the
  712.      direction that you move the mouse.  Specifically, the axis of rotation
  713.      passes through the origin of the center object, is parallel to the
  714.      camera view plane, and is perpendicular to the direction of motion of
  715.      the mouse.  When the center is "target", this means that the target
  716.      object rotates about its own origin.
  717.  
  718.      The middle mouse button in *Rotate* mode rotates the target
  719.      object about an axis perpendicular to the view plane.
  720.  
  721. *Translate*
  722.      In *Translate* mode, hold the left mouse button down to translate
  723.      the target object in the direction of mouse motion.  The middle mouse
  724.      button translates the target along an axis perpendicular to the view
  725.      plane.
  726.  
  727.      In Euclidean space, the center object is essentially irrelevant for
  728.      translations.  In hyperbolic and spherical spaces, where translations
  729.      have a unique axis, this axis is chosen to go through the origin of the
  730.      center object.
  731.  
  732. *Cam Fly*
  733.      *Cam Fly* is a crude flight simulator that lets you fly around
  734.      the scene.  It works by moving the camera.
  735.      Move the mouse while holding the left mouse button down to
  736.      point the camera in a different direction.  To move forward or backward,
  737.      hold down the middle button and move the mouse vertically.  Both of
  738.      these motions have inertia; typically the easiest way to fly around a
  739.      scene is to give the camera a slight forward push by letting go of the
  740.      middle button while moving the mouse upward, and then using the left
  741.      button to steer.
  742.  
  743.      *Cam Fly* affects the camera window that the mouse is in; it
  744.      ignores the target object and the center object.
  745.  
  746. *Cam Orbit*
  747.      *Cam Orbit* mode lets you rotate the current camera around the
  748.      current center. The left mouse button does this rotation.  The middle
  749.      mouse button in *Cam Orbit* mode is the same as it is in
  750.      *Cam Fly* mode: it moves the camera forward or backward.
  751.  
  752.      In general *Cam Orbit* does not move the target object, although
  753.      if the current camera is selected as the target and the center is also
  754.      the target, it will rotate that camera about itself just as in
  755.      *Cam Fly* mode.
  756.  
  757. *Cam Zoom*
  758.      *Cam Zoom* mode lets you change the current camera's field of
  759.      view with the mouse; hold the left mouse button down and move the mouse
  760.      to change it.  The numeric value of the field of view is shown in the
  761.      *FOV* field in the *Camera* panel.
  762.  
  763. *Geom Scale*
  764.      *Geom Scale* mode lets you enlarge or shrink a geom.  It operates
  765.      on the target object if that object is a geom.  If the target is a
  766.      camera, *Geom Scale* operates on the geom that was most recently
  767.      the target object.  Moving the mouse while holding down the left mouse button
  768.      scales the object either up or down, depending on the direction of
  769.      mouse motion.  The center of the applied scaling transformation is the
  770.      center object.
  771.  
  772.      Scaling is meaningful only in Euclidean space; attempts to scale are
  773.      ignored in other spaces.
  774.  
  775.  
  776.      *Geom Scale* mode does not have inertia.
  777.  
  778.  
  779. The *Stop*, *Look At*, *Center*, and *Reset*
  780. buttons on the *Tools* panel perform actions related to motions
  781. but do not change the current motion mode.
  782.  
  783.  
  784.  
  785. *Stop*
  786.      The *Stop* button causes all motions to stop.  It affects all
  787.      moving objects; not just the target object.  It's keyboard shortcut
  788.      is `H'.
  789.  
  790.      The keyboard command `h', which does not correspond to a
  791.      panel button, stops the current motion for the target object only.
  792.  
  793. *Look At*
  794.      The *Look At* button causes the current camera to be moved
  795.      to a position such that it is looking at the target object, and such
  796.      that the target object more or less fills the window.
  797.  
  798.      The Look At command is unreliable in non-Euclidean spaces.
  799.  
  800. *Center*
  801.      The *Center* button undoes the target object's transformation,
  802.      moving it back to its home position, which is where it was when you
  803.      originally loaded it into Geomview.
  804.  
  805. *Reset*
  806.      The *Reset* button stops all motion and causes all objects to
  807.      move back to their home positions.
  808.  
  809.  
  810. The other four buttons on the *Tools* panel are:
  811.  
  812.  
  813. *MAIN*
  814.      This button brings up the *Main* panel in case you have dismissed it
  815.      or in case it is buried underneath other panels.
  816.  
  817. *Done*
  818.      This button dismisses the *Tools* panel.  You can bring the panel
  819.      back by selecting it in the *More Panels* browser in the *Main*
  820.      panel, or via the `P t' keyboard shortcut.
  821.  
  822. *Load*
  823.      This is the same as the *Load* button on the *Main* panel;
  824.      it brings up the *Files* panel.
  825.  
  826. *Save*
  827.      This is the same as the *Save* button on the *Main* panel;
  828.      it brings up the *Save* panel.
  829.  
  830.  
  831. 
  832. File: geomview  Node: Point of Interest, Prev: Mouse Motions, Up: Mouse Motions, Next: Appearance
  833.  
  834. Selecting a Point of Interest
  835. -----------------------------
  836.  
  837. It is sometimes useful to specify a particular point on some object in a
  838. geomview window as the center point for mouse motions.  You can do this
  839. by shift-clicking the right mouse button (i.e. click it once
  840. while holding down the shift key on the keyboard) with the cursor over
  841. the desired point.  This point then becomes the *point of
  842. interest*.  The point of interest must be on an existing object.
  843.  
  844. Selecting a point of interest simplifies examining a small portion of a
  845. larger object.  Shift-right-click on an interesting point, and select
  846. *Orbit* mode.  Use the middle mouse button to approach, and the
  847. left mouse to orbit the point, examining the region from different
  848. directions.
  849.  
  850. When you have selected a point of interest, the current center object
  851. changes to an object named "CENTER", which is an invisible object
  852. located at the point of interest.  In addition, mouse motions for the
  853. window in which you made the selection are adjusted so that the point of
  854. interest follows the mouse.
  855.  
  856. You can change the point of interest at any time by selecting a new one
  857. by shift-clicking the right mouse button again.  You can cancel
  858. the point of interest altogether by shift-clicking the right
  859. mouse button with the cursor on the background (i.e. not on any object).
  860. This changes the center object back to its default value, "target".
  861.  
  862. The object named "CENTER", which serves as the center object for the
  863. point of interest, is a special kind of geom called an "alien".  It does
  864. not appear in the *TARGET OBJECTS* browser.  By default it has no
  865. geometry associated with it and hence is invisible.  You can, however,
  866. explicitly give it some geometry using a GCL command, causing it to
  867. appear.  Use the `geometry' command for this: `(geometry
  868. CENTER GEOMETRY)', where GEOMETRY is any valid geometry.
  869. For example, `(geometry CENTER { < xyz.vect })' causes the file
  870. `xyz.vect', which is one of the standard example files distributed
  871. with geomview, to be used at the geometry for CENTER.
  872.  
  873.  
  874. What actually happens internally when you select a point of interest is
  875. that the center is set to the object called CENTER, and that object is
  876. positioned at the point of interest.  In addition, in order for mouse
  877. motions to track the point of interest, the current camera's focal
  878. length is set to be the distance from the camera to the point of
  879. interest.  You can accomplish this via GCL with the following commands:
  880.      (if (real-id CENTER) nil (new-alien CENTER {}))
  881.      (ui-center CENTER)
  882.      (transform-set CENTER universe universe translate X Y Z)
  883.      (merge camera CAM-ID { focus D })
  884. where `(X,Y,Z)' are the (universe) coordinates of
  885. the point of interest, and D is the distance from that point to
  886. the current camera, CAM-ID.  The first command above creates the
  887. "alien" CENTER if it does not yet exist.
  888.  
  889. 
  890. File: geomview  Node: Appearance, Prev: Point of Interest, Up: Interaction, Next: Appearance Panel
  891.  
  892. Changing the Way Things Look
  893. ============================
  894.  
  895. Geomview uses a hierarchy of appearances to control the way things look.
  896. An "appearance" is a specification of information about how
  897. something should be drawn.  This can include many things such things as
  898. color, lighting, material properties, and more.  Appearances work in a
  899. hierarchal manner: if a certain appearance property, for example face
  900. color, is not specified in a particular object's appearance, that object
  901. is drawn using that property from the parent appearance.  If both the
  902. parent and the child appearance specify a property, the child's setting
  903. takes precedence unless the parent appearance is set to override.
  904.  
  905. Every geom in Geomview has an appearance associated with it.  There is
  906. also an appearance associated with the "World" geom, which serves as the
  907. parent of each individual geom's appearance.  Finally, there is an
  908. global "base" appearance, which is the parent of the World appearance.
  909.  
  910. The base appearance specifies reasonable values for all appearance
  911. information, and by default none of the other appearances specify
  912. anything, which means they inherit their values from the base
  913. appearance.  This means that by default all objects are drawn using the
  914. base appearance.
  915.  
  916. If you change a certain appearance property for a geom, that property
  917. is used in drawing that geom.  The parent appearance is used for any
  918. properties that you do not explicitly set.
  919.  
  920. Geomview has three panels which let you modify appearances.  
  921.  
  922. * Menu:
  923.  
  924. * Appearance Panel::    Color etc.
  925. * Materials Panel::    Surface Material properites.
  926. * Lighting Panel::    Lighting Parameters.
  927.  
  928. 
  929. File: geomview  Node: Appearance Panel, Prev: Appearance, Up: Appearance, Next: Materials Panel
  930.  
  931. The Appearance Panel
  932. --------------------
  933.  
  934. The *Appearance* panel lets you change most common appearance
  935. properties of the target object.
  936. If the target is an individual geom, then changes you make in the
  937. appearance panel apply to that geom's appearance.  If the target is the
  938. World, then appearance panel changes apply to the World appearance
  939. *and* to all individual geom appearances.  (Users have found that
  940. this is more desirable than having the changes only apply to the World
  941. appearance.)  If the target is a camera, then appearance panel changes
  942. apply to the geom that was most recently the target.
  943.  
  944. The five buttons near the upper right corner under the word
  945. *Draw* control what parts of the target geom are drawn.
  946.  
  947.  
  948. *Faces*
  949.      This button specifies whether faces are drawn.
  950.  
  951. *Edges*
  952.      This button specifies whether edges are drawn.
  953.  
  954. *BBox*
  955.      This button specifies whether the bounding box is drawn.
  956.  
  957. *Vects*
  958.      This button specifies whether VECT objects are drawn.  VECTs are a type
  959.      of OOGL object that represent points and line segments in 3-space;
  960.      they are distinct from edges of other kinds of objects, and it is sometimes
  961.      desirable to have separate control over whether they are drawn.
  962.  
  963. *Normals*
  964.      This button specifies whether surface normal vectors are drawn.
  965.  
  966.  
  967. The four buttons under *COLOR* labeled *Faces*, *Edges*,
  968. *Normals*, and *BBox* let you specify the color of
  969. the corresponding aspect of the target geom.  Clicking on one
  970. of them brings up a color chooser panel.
  971. The black dot in the center of the hexagon represents the current color;
  972. you can move it around by dragging it with the left mouse button down.
  973. The slider specifies the intensity.  To accept the color that you have
  974. chosen, click the *OK* button.  To cancel your color selection
  975. and return to the previous color, click the *Cancel* button.
  976.  
  977. The *SHADING* browser lets you specify the shading model that
  978. Geomview uses to paint the target geom.
  979.  
  980.  
  981. *Constant*
  982.      Every face of the object is drawn with a constant color which does not
  983.      depend on the location of the face, the camera, or the light sources.
  984.      If the object does not contain per-face or per-vertex colors, the
  985.      diffuse color of the object's appearance is used.  If the object
  986.      contains per-face colors, they are used.  If the object contains
  987.      per-vertex colors, each face is painted using the color of its first
  988.      vertex.
  989.  
  990. *Flat*
  991.      Each face of the object is drawn with a color that depends on the
  992.      relative location of the face, the camera, and the light sources.
  993.      The color is constant across the face but may change as the face,
  994.      camera, or lights move.
  995.  
  996. *Smooth*
  997.      Each face of the object is drawn with smoothly interpolated colors based
  998.      on the normal vectors at each vertex.  If the object does not contain
  999.      per-vertex normals, this has the same effect as flat shading.  If the
  1000.      object has reasonable per-vertex normals, the effect is to smooth
  1001.      over the edges between the faces.
  1002.  
  1003. *CSmooth*
  1004.      Each face of the object is drawn with exactly the specified color(s),
  1005.      independent of lighting, orientation, and material properties.  If the
  1006.      object is defined with per-vertex colors, the colors are interpolated
  1007.      smoothly across the face; otherwise the effect is the same as in
  1008.      Constant shading style.
  1009.  
  1010.  
  1011. The *Facing Normals* button on the *Appearance* panel
  1012. indicates whether or not Geomview should arrange that normal vectors
  1013. always face the viewer.  If a normal vector points away from the viewer
  1014. the color of the corresponding face or vertex usually is darker than is
  1015. desired.  Geomview can avoid this by using the opposite normal in
  1016. shading calculations.  This is the default.  To change it so that the
  1017. actual normals are used, press this button.  This has no effect in
  1018. constant shading mode.
  1019.  
  1020. The three text fields in the lower left corner of the *Appearance*
  1021. panel are:
  1022.  
  1023.  
  1024. *Line Width*
  1025.      The width, in pixels, for lines drawn by Geomview.
  1026.  
  1027. *Normal Length*
  1028.      This is actually a scale factor; when normal vectors are drawn, Geomview
  1029.      draws them to have a length that is their natural length times this
  1030.      number.
  1031.  
  1032. *Patch Dicing*
  1033.      Geomview draws Bezier patches by first converting them to meshes.  This
  1034.      parameter specifies the resolution of the mesh: if *Patch Dicing*
  1035.      is N, then an N by N mesh is used to draw each Bezier
  1036.      patch.  if *Patch Dicing* is 1, the resolution reverts to a
  1037.      built-in default value.
  1038.  
  1039.  
  1040. The *Revert* button on the *Appearance* panel undoes all
  1041. settings in the target appearance.  This causes the target geom to
  1042. inherit all its appearance properties from its parent.
  1043.  
  1044. The *Appearance* panel's *Override* button determines whether
  1045. appearance controls should override settings in the objects themselves --
  1046. for example, setting the face color will affect all faces of objects with
  1047. multi-colored facets.  Otherwise, appearance controls only provide settings
  1048. which the objects themselves do not specify.
  1049. By default, *Override* is enabled.  This button applies to all objects,
  1050. and to all appearance-related panels.
  1051.  
  1052. 
  1053. File: geomview  Node: Materials Panel, Prev: Appearance Panel, Up: Appearance, Next: Lighting Panel
  1054.  
  1055. The Materials Panel
  1056. -------------------
  1057.  
  1058. The *Materials* panel controls material properties of surfaces.
  1059. It works with the target object in the same way that the
  1060. *Appearance* panel does.
  1061.  
  1062.  
  1063. *Transparent*
  1064.      This button determines whether transparency is enabled.  Geomview
  1065.      does not fully support transparency yet and on some machines it does
  1066.      not work at all.
  1067.  
  1068. *Alpha*
  1069.      This slider determines the opacity/transparency when transparency is
  1070.      enabled.  0 means totally transparent, 1 means totally opaque.
  1071.  
  1072. *Diffuse Reflectance*
  1073.      This slider controls the diffuse reflectance of a surface.  This has
  1074.      to do with how much the surface scatters light that it reflects.
  1075.  
  1076. *Shininess*
  1077.      This slider controls how shiny a surface is.   This determines the
  1078.      size of specular highlights on the surface.  Lower values give the
  1079.      surface a duller appearance.
  1080.  
  1081. *Ambient Reflectance*
  1082.      This slider controls how much of the ambient light a surface reflects.
  1083.  
  1084. *Specular Reflectance*
  1085.      This slider controls the specular reflectance of a surface.  This
  1086.      has to do with how directly the surface reflects light rays.  Higher
  1087.      values give brighter specular highlights.
  1088.  
  1089. *Done*
  1090.      This button dismisses the *Materials* panel.
  1091.  
  1092.  
  1093. 
  1094. File: geomview  Node: Lighting Panel, Prev: Materials Panel, Up: Appearance, Next: Cameras
  1095.  
  1096. The Lighting Panel
  1097. ------------------
  1098.  
  1099. The *Lighting* panel controls the number, position, and color of
  1100. the light sources used in shading.
  1101.  
  1102. The *Lighting* panel is different from the *Appearance* and
  1103. *Material* panels in that it always works with the base
  1104. appearance.  This is because it usually makes sense to use the same set
  1105. of lights for drawing all objects in your scene.
  1106.  
  1107.  
  1108. *LIGHTS*
  1109.      The *LIGHTS* browser shows the currently selected light.  Changes
  1110.      made using the other widgets on this panel apply to this light.  There
  1111.      is always at least one light, the ambient light.
  1112.  
  1113. *Intensity*
  1114.      This slider controls the intensity of the current light.
  1115.  
  1116. *Color*
  1117.      This button brings up a color chooser which lets you select the color
  1118.      of the current light.
  1119.  
  1120. *Add*
  1121.      This button adds a light.
  1122.  
  1123. *Delete*
  1124.      This button deletes the current light.
  1125.  
  1126. *Show Lights*
  1127.      This button lets you see and change the positions of the light sources
  1128.      in a camera window.  Each light is drawn as long cylinder which is
  1129.      supposed to remind you of a light beam.  When you click on the
  1130.      *Show Lights* button Geomview goes into "light edit" mode, during
  1131.      which you can rotate current light by holding down the left mouse button
  1132.      and moving the mouse.  Lights placed in this way are infinitely distant,
  1133.      so what you are changing is the angular position.  Click on the
  1134.      *Show Lights* button again to return to the previous motion mode
  1135.      and to quit drawing the light beams.
  1136.  
  1137. *Done*
  1138.      This button dismisses the *Lighting* panel.
  1139.  
  1140.  
  1141. Geomview's *Appearance*, *Materials*, and *Lighting*
  1142. panels are constructed to allow you to easily do most of the appearance
  1143. related things that you might want to do.  The appearance hierarchy that
  1144. Geomview supports internally, however, is very complex and there are
  1145. certain operations that you cannot do with the panels.  The Geomview
  1146. command language (gcl) provides complete support for appearance operations.
  1147. In particular, the `merge-baseap' command can be used to change the
  1148. base appearance (which, except for lighting, cannot be changed by
  1149. Geomview's panels).  The `merge-ap' command can be used to change
  1150. an individual geom's appearance.  Appearances can also be specified in
  1151. OOGL files; for details, *Note Appearances::.
  1152.  
  1153.  
  1154. 
  1155.